package removeElement;

import java.util.Arrays;

public class Solution {
    public int removeElement(int[] nums, int val) {
//        Arrays.sort(nums);
//        for (int i = 0; i < nums.length; i++) {
//            if(nums[i]==val){
//                for (int j = i+1; j < nums.length; j++) {
//                    if(nums[j]!=val){
//                        // 赋值
//                        int k = i;
//                        for (; j < nums.length  ; k++,j++) {
//                            nums[k] = nums[j];
//                        }
//                        return k;
//                    }
//                }
//                return i;
//            }
//        }
//        return nums.length;
        // 先找到那个元素
        int slow = 0;
        int fast;
        while(slow<nums.length){
            if(nums[slow] == val){
                fast = slow+1;
                while(true){
                    if(fast>=nums.length){
                        return slow;
                    }
                    if(nums[fast]!=val){
                        break;
                    }
                    fast++;
                }
                nums[slow] = nums[fast];
                nums[fast] = val;
            }
            slow++;
        }
        return slow;
    }
}
//class Solution {
//    public int removeElement(int[] nums, int val) {
//        int left = 0;
//        int right = nums.length;
//        while (left < right) {
//            if (nums[left] == val) {
//                nums[left] = nums[right - 1];
//                right--;
//            } else {
//                left++;
//            }
//        }
//        return left;
//    }
//}
